home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HyperLib 1997 Winter - Disc 1
/
HYPERLIB-1997-Winter-CD1.ISO.7z
/
HYPERLIB-1997-Winter-CD1.ISO
/
オンラインウェア
/
UTIL
/
Msh 1.0.0.sit
/
Msh 1.0.0 f
/
Manual
/
MAN1M.HLP
< prev
next >
Wrap
Text File
|
1996-11-14
|
78KB
|
2,467 lines
/***Intro***/
INTRO(1M) Mac-Shell Command INTRO(1M)
【名前】
Intro - Mac-Shell コマンド (man1m.hlp)
【内容】
<コマンド名> <概略>
Msh unix の csh ライクなシェル(コマンド・インタプリタ)
cd/chdir カレントディレクトリの移動
pwd カレントディレクトリの表示
ls ディレクトリ内容の表示
cp ファイルのコピー
mv ファイルの移動
rm ファイル削除
df ディスクの空き容量表示
du ディスク使用量の表示
mkdir/rmdir ディレクトリの作成/削除
cat ファイルの連結と出力
head ファイルの先頭を出力
tail ファイルの末尾を出力
sort ファイルの整列,マージ
diff GNU-diff(テキストファイルの内容比較)
grep GNU-grep(文字列検索)
wc テキストファイルの語数をカウント
look 簡易 日/英辞書
man オンラインマニュアル
manmnt マニュアルのメンテナンス
file ファイルタイプの報告
vi vi エディターの起動 (STevie for Mac)
alias/unalias コマンド別名の定義/削除
echo エコー
history ヒストリーの出力
pushd/popd/dirs ディレクトリの push/pop/表示
set/unset 環境変数の設定/消去
source コマンドをファイルから読み込み実行
exit exit program
clear 端末画面のクリア
date 日時の出力
stty Mac モニターの解像度等の表示
den 簡易電卓
help ヘルプの出力
ps プロセスステータスの表示
finder Finder の各種制御
process プロセスの各種制御
/***msh***/
MSH(1M) Mac-Shell Command MSH(1M)
【名前】
Msh - unix の csh ライクなシェル(コマンド・インタプリタ)
【形式】
Msh (Finder などから起動)
【目次】
解説
シェルの解説
パスの指定について
初期設定と終了
コマンド入力について
コマンドの検索/実行
コマンド実行中のキー
字句の構造
I/O のリダイレクト
コマンド行の分析
ヒストリの置換
別名(エイリアス)
変数の置換
ファイル名の置換
ファイル
シェル変数
関連項目
【解説】
Msh は Macintosh 上で unix 風な処理が出来るようにするためのシェル
(コマンド・インタプリタ),各種コマンド及びその他の便利な機能を持っ
たアプリケーションです。
【シェルの解説】
Msh のコマンド・インタプリタ及びコマンド実行の方法について解説しま
す。
なお、ここでは個々のコマンド説明は行いません。どのようなコマンドがあ
るか知りたい場合には "help" または "man 1m intro" とコマンドを打って
下さい。また、コマンドの詳細説明を見たい場合には "man <コマンド名>"
と打って下さい。
[パスの指定について]
基本的には unix の形式と同じです。
1. ドライブ
DOS と同じようなドライブの考え方があります。ドライブ名は英
字の A〜Z 1文字です。ドライブは基本的にはマウントされた順
番にふられます。df(1m) コマンドにより現在マウントされている
ボリュームとそのドライブ名がわかります。
2. unix 形式
フルパス <ドライブ>:[/ディレクトリ...]/ファイル
ディレクトリの区切り /
カレントディレクトリ .
親ディレクトリ ..
3. Mac 形式での指定
フルパス <ボリューム名>:[ディレクトリ:...]最終パス
カレント上のファイル ファイル名
カレント上のディレクトリ :<ディレクトリ>
親ディレクトリ ::最終パス
この形式の指定をした場合には、ファイル展開はされません。
詳細は、Inside Macintosh を見てください。
注意: 次のようなものがあると Msh の解釈及び処理がおかしくなること
があります。
1. ".", ".." というファイル
2. A〜Z 一文字のボリューム
3. "/" 文字を含むボリューム,ディレクトリ,ファイル
[初期設定と終了]
Msh は起動時にこのアプリケーションのあるディレクトリの _mshrc を実
行します。
終了時には、現在のところ特に処理は行いません。
[コマンド入力について]
プロンプトが表示されている場合に、コマンドを入力することが出来ます。
なお、次のキーは特殊な意味を持っています。
ESC 2回キー入力するとコマンド再入力
Return, Enter コマンドの実行
Ctrl+H, Delete カーソル前の文字消去
Ctrl+G カーソル文字の消去
Ctrl+S, ← カーソルの左移動
Ctrl+D, → カーソルの右移動
Ctrl+U コマンド再入力
Ctrl+E, ↑ 前のヒストリー表示
Ctrl+X, ↓ 次のヒストリー表示
[コマンドの検索/実行]
実行するコマンドの決定は次の順番で行われる
1. 内部コマンド名かチェック
2. 環境変数 path 上にアプリケーション/コントロールパネル/ディ
スクアクセサリ(DA) があるかチェック
フォルダー指定時はそのものがあるかチェック
例: "a:/appl/STvi"
path の設定例(_mshrc に通常は記述する)
% set path=(a:/システムフォルダ/コントロールパネル a:/Appl)
アプリケーション時のオプション
-n ファイルがない場合にテキストファイルを新規作成
-p ドキュメントを実行する
例: % yooedit -p *.txt ← YooEdit でファイルを印刷
AppleScript もアプリケーション化させれば実行できます
[コマンド実行中のキー]
コマンドの実行中に有効なキーは次のものです。
Ctrl+C プログラムの強制停止(コンソールへの出力時のみで有効)
Ctrl+S コンソール表示の停止
表示の再開は Ctrl+S or Ctrl+Q
注意: 1. 現バージョンでは、表示時のみにキーをチェックしているため
ききが悪いことがあります。
2. 現バージョンでは、Ctrl+S で表示を停止した場合にキーバッフ
ァをクリアしていないためコマンド入力状態になった場合に警
告音が鳴りますが気にしないで下さい。
[字句の構造]
'...' 変数,ファイルの置換は行われない
"..." ファイルの置換は行われない
`コマンド..` コマンドの標準出力をワードに区切ってコマンドラインに
展開します("..." 内部の場合改行は新しいワードを作成
します)
(コマンド..) コマンドをグループ化します
¥ 後続する文字の特殊な意味をなくします
# 入力が端末からでない場合(source など)後続する文字を
無視する(コメント)
例: % man ".*copy.*" ← "copy" を含むマニュアルを表示
% vi `grep -l abc *.c` ← "abc" を含むファイルを編集
% (grep abc *.c ; grep xyz *.c) | sort
← "abc","xyz" 検索結果をソート
注意: 現バージョンでは ¥ による継続行はサポートされていません。
[コマンド行の分析]
; 複数コマンドの実行
|| 複数コマンドの実行(エラー時のみ処理続行)
&& 複数コマンドの実行(正常終了時のみ処理続行)
|, |& パイプ
注意: 現バージョンでは、 &&, || はサポートされていません。
[I/O のリダイレクト]
< <ファイル> 標準入力をリダイレクト
> <ファイル> 標準出力をリダイレクト
>> <ファイル> 標準出力をリダイレクト(現ファイルに追加)
>& <ファイル> 標準出力,エラーをリダイレクト
>>& <ファイル> 標準出力,エラーをリダイレクト(現ファイルに追加)
| 標準出力をパイプ
|& 標準出力,エラーをパイプ
[ヒストリの置換]
イベント指定
!, !! 直前のコマンドを参照
!<n> コマンド行 <n> を参照
!-<n> <n> 行前のコマンドを参照
!str str で始まる最新のコマンドを参照
!?str[?] str を含む最新のコマンドを参照
!{...} ヒストリを参照するとき後続する文字と区切る
^str^newstr[^] 直線のコマンドの str を newstr に置換する
ワード指定
イベント指定の後に ':' に続いて(^,$,*,-,% の場合省略可)指定すること
によりワード範囲をしてすることができます
# (未サポート)
0 最初の入力ワード(コマンド)
n n 番目の引数
^ 最初の引数(1 と同じ)
$ 最後のワード
% (未サポート)
x-y ワード範囲(-y は 0-y と同じ)
* 全ての引数
x*, x- x-$ の省略形
修飾子
ワード指定に続いて ':' の後に次の1つ以上の修飾子を指定できます
h,r,e (未サポート)
s/str/newstr[/] str を newstr に置換(/ の代わりに任意の文字を指定可)
t,&,g (未サポート)
p コマンドを表示するが実行はしない
q,x (未サポート)
[別名(エイリアス)]
詳細は、alias(1m) を参照。
備考: 0.5.1 より以下のような別名の置換結果に対する !* をサポート
例: % alias lsm 'ls -1 ¥!* | more' ← 登録
% lsm *.c
[変数の置換]
$var, ${var} 変数とそのまま置換
$var[index]
${var[index]} 変数の指定したワード番号の範囲と置換
ワードの指定方法(ワードは1が先頭)
$var[*] 全てのワード
$var[n] n 番目のワードのみ
$var[n-m] n〜m 番目のワード
$var[n-] n〜最後のワード
$var[-m] 1〜m 番目のワード
$#var, ${#var} 変数のワード数と置換
$n, ${n} $argv[n] と同じ
$* $argv[*] と同じ
$?var
${?var} 変数が設定されている場合は文字列 1、いない場合は 0
$0, $?0, $< (未サポート)
[ファイル名の置換]
下に示す文字のいずれかがコマンド内に現れた場合には、ディレクトリを
調べアルファベット順にソートされたファイルまたはディレクトリに展開
されます(DOS では一般にワイルドカード展開と呼ばれている)。ただし、
引用符('...', "...")で囲まれていたり ¥ でエスケープされた場合はこの
処理は行われない。
* (0個以上の)いずれかの文字に一致
? いずれかの1文字に一致
[...] 囲まれた文字または文字範囲のいずれか1文字に一致
例: [abc] a,b,c のいずれかの文字
[a0-9] a または数字の文字
[^...] 囲まれた文字または文字範囲でないいずれか1文字に一致
{str,str,...} コンマで区切った各文字列に展開される(この展開結果は
ソートされません)
例: % ls a*.{bak,old}
~ 変数 home の値に置換される(この指定はワードの先頭の
場合のみ処理される)
備考: 1. 半角の大文字/小文字は区別されませんが展開後は Finder で
見えるままとなります
2. カタカナ及び全角文字は [] 指定以外正しく動くはずです
【ファイル】
<Mshディレクトリ>/_mshrc Msh 起動時に読み込まれるファイル
<一時フォルダー>/__Msh_pipe*__ Msh パイプ処理用ファイル
<一時フォルダー>/__Msh_tmp*__ Msh 一時ファイル
【シェル変数】
echo 実行直前のコマンドを標準エラーに出力
home ユーザのホーム・ディレクトリです。ファイル名拡張の
チルダ ('~') はこの値を参照します。
noglob ファイル名展開を禁止
nonomatch ファイル名展開のパターンが不一致でもエラーとしない
prompt プロンプトとして出す文字列
(! 文字はのヒストリ番号に置換されます)
verbose ヒストリ置換後のコマンドを表示
【関連項目】
alias(1m) history(1m) set(1m)
/***alias***/ unalias
ALIAS(1M) Mac-Shell Command ALIAS(1M)
【名前】
alias - 別名定義
unalias - 別名削除
【形式】
alias [name [def]] 別名定義設定または表示
unalias pattern 別名定義削除
【解説】
alias
全てのエイリアスを表示します。
alias name
エイリアス name とその定義内容を表示します。
alias name def
def をエイリアス name に割り当てます。def はエスケープしたヒ
ストリ置換のメタシンタックスを含むことのできる、ワードのリス
トです。
name に alias/unalias を指定することはできません。
nameは、予約コマンドの扱いになるので、.(ピリオド)や / などを
含めることはできません。
unalias pattern
pattern (ファイル名の展開方式と同じ) に一致する全てのエイリ
アスを削除する。
全てのエイリアスを削除する場合は、unalias * とする。
置き換えるコマンドにおける仮引数は、定義コマンド中に下で示すものを
指定します。
!* 全ての引き数
【バグ】
1. unalias の name でワイルドカード指定をするとファイル展開が
されてしまいます。
/***cd***/ chdir pwd
CD(1M) Mac-Shell Command CD(1M)
【名前】
cd - ワーキング・ディレクトリの変更
chdir - ワーキング・ディレクトリの変更
pwd - ワーキング・ディレクトリの出力
【形式】
cd [dir]
chdir [dir]
pwd
【解説】
cd [dir]
chdir [dir]
シェルのワーキング・ディレクトリを、指定ディレクトリに変更し
ます。引数を指定しなければ、ホーム・ディレクトリ(変数 homeの
ディレクトリ)に変更します。
pwd
ワーキング・ディレクトリを出力します。
【シェル変数】
home ユーザのホーム・ディレクトリ
【関連項目】
pushd(1m)
/***clear***/
CLEAR(1M) Mac-Shell Command CLEAR(1M)
【名前】
clear - 端末画面のクリア
【形式】
clear
【解説】
Msh のコンソール・ウインドウをクリアします。
/***date***/
DATE(1M) Mac-Shell Command DATE(1M)
【名前】
date - 日付時間の表示と設定
【形式】
date [-j] 現在日時の表示
x date yy/mm/dd [hh:mm] 日時の設定 ** 未作成
【解説】
date [-j]
現在の日時を表示します。-j オプションを指定すると日本形式で
表示します。
% date
Sun Jul 24 23:15:35 JST 1994
% date -j
94/07/24(日) 23:15:35
x date yy/mm/dd [hh:mm]
x 日時の設定をします。
【バージョン】
現バージョンでは日時の設定はできません
/***echo***/
ECHO(1M) Mac-Shell Command ECHO(1M)
【名前】
echo - 引数の標準出力への出力
【形式】
echo [-n] [argument...]
【オプション】
-n 改行を行わない
【解説】
argument を標準出力にスペース文字で区切って出力し改行します。
/***exit***/
EXIT(1M) Mac-Shell Command EXIT(1M)
【名前】
exit - Msh の終了
【形式】
exit
【解説】
Msh を終了させます
/***help***/
HELP(1M) Mac-Shell Command HELP(1M)
【名前】
help - Msh のコマンド一覧表示
【形式】
help
【解説】
使用できる Msh のコマンド一覧を表示します。
/***history***/
HISTORY(1M) Mac-Shell Command HISTORY(1M)
【名前】
history - ヒストリ・リストの表示
【形式】
history [-hr] [n]
【オプション】
x -h 番号を付けずにヒストリ・リストを表示します。これは、source
に -h オプションを使用して使う場合に適した出力をします。
x -r 最新のものが最初にくるように出力順を逆にします。
【解説】
x ヒストリ・リストを表示します。n を指定すると、最新の n 個のイベント
だけを表示します。
【シェル変数】
history ヒストリ・リストに保存される行数
/***finder***/
FINDER(1M) Mac-Shell Command FINDER(1M)
【名前】
finder - Finder の各種制御
【形式】
finder launch Finder の起動
open <file>[...] オープン(ダブルクリックと同じ)
print <file>[...] Print
info <file>[...] GetInfo(情報を見る)
delete <file>[...] ごみ箱に移動
event <Class> <ID> [file[...]] AppleEvent の送信
empty ごみ箱を空にする
reset "再起動"
shutdown "システム終了"
front Finder を最前面に
kill Finder を終了
【解説】
Finder の各種制御を行います
【関連項目】
process(1m)
/***process***/
PROCESS(1M) Mac-Shell Command PROCESS(1M)
【名前】
process - プロセスの各種制御
【形式】
process launch <Type> <Sign> 起動
process open [-n] <Appl-Sign> <document>[...] Open ドキュメント
process print <Appl-Sign> <document>[...] Printドキュメント
process quit <Type> <Sign> 終了イベント送信
process front <Type> <Sign> 最前面に
process event <Type> <Sign> <Class> <ID> イベントの送信
-n ファイルがない場合に新規作成
【解説】
プロセス(アプリケーション等)の種々の制御を行うコマンドです。
Type プロセスタイプ(4文字)
APPL 通常のアプリケーション
FNDR Finder
そのた
Sing シグネチャーコード(4文字)
現在起動中の物は ps(1m) コマンドで確認可能
【使用方法】
プロセスの起動
process launch APPL YoED YooEdit の起動
ドキュメントのオープン
process open YoED *.h 全ヘッダーファイル編集
ドキュメントの印刷
process print YoED *.h 全ヘッダーファイル印刷
プログラムを最前面に
process front APPL YoED YooEdit を最前面に
/***ps***/
PS(1M) Mac-Shell Command PS(1M)
【名前】
ps - プロセスのステータスを表示
【形式】
ps
【解説】
現在動作中のプロセスを一覧表示します。
表示例は次の通りです。
% ps
Machine: PowerBook 520/540
OS Version: 7.1.1
Task Type Crt Top-mem Size Free
--------------------------+----+----+--------+-----+-----
Finder FNDR MACS afc270 326 164
ResEdit APPL RSED 6f9050 616 418
STvi APPL TSvi 817b90 784 511
Msh APPL TMsh 7935f0 528 234
Size,Free の単位は KByte です。
/***pushd***/ popd dirs
PUSHD(1M) Mac-Shell Command PUSHD(1M)
【名前】
pushd - ディレクトリプッシュ
popd - ディレクトリポップ
dirs - ディレクトリ・スタックの表示
【形式】
pushd [+<n> | <dir>]
popd [+<n>]
dirs [-l|-L]
【解説】
ディレクトリ・スタック操作は、次のコマンド操作で行ないます。
pushd [+<n> | <dir>]
ディレクトリをディレクトリ・スタックにプッシュします。パラメ
ータを指定しないとスタックに積まれたディレクトリとカレントデ
ィレクトリを交換します。
+<n> n 番目のエントリをスタックの一番上に回し、そのディレ
クトリに移動します。
dir 現在のワーキング・ディレクトリをスタックにプッシュし
て、dir に移動します。
popd [+<n>]
ディレクトリ・スタックをポップして、一番上になったディレクト
リに移動します。ディレクトリ・スタックの要素は、一番上を 0と
して番号付けます。
+<n> スタック内の n 番目のエントリを破棄します。
dirs [-l|-L]
現在スタックに積まれているディレクトリの内容を表示します。
-l チルダ('~')で省略しないかたちで表示します
-L 先頭に番号を付けて表示します(Msh 特有)
【シェル変数】
home ユーザのホーム・ディレクトリ
【関連項目】
cd(1m) pwd(1m)
/***set***/ unset
SET(1M) Mac-Shell Command SET(1M)
【名前】
set - シェル変数の設定
unset - シェル変数の削除
【形式】
set [var[= value]]
set var[n] = word
unset pattern
【解説】
set
全てのシェル変数の値を表示します。複数ワードの値はかっこで
くくったリストとして表示されます。
set var[ = value]
変数 var に、value の値を割り当てます。var 単独で指定すると
変数 var に空の値を割り当てます。
value は次のどちらかです。
word 1つのワード(または引用符で囲んだ文字列)
(wordlist) かっこで囲んだワードをスペースで区切った
リスト
set var[n] = word
変数 var の n 番目のワードを word に置き換えます。
unset pattern
pattern (ファイル名の展開方式と同じ) に一致する全ての変数を
削除します。
【バグ】
・unset の name でワイルドカード指定するとファイル名に展開されてしま
います。
・'set var[n]=word' は [] が通常のファイル展開されてしまいます。逃げ
として、引用符("") で var[n] を囲んでください。
(注意: この逃げは本来の csh ではおかしくなります)
/***source***/
SOURCE(1M) Mac-Shell Command SOURCE(1M)
【名前】
source - ファイルからのコマンド読み込み
【形式】
source [-h] file
【オプション】
-h コマンドの実行は行わず、ヒストリ・リストへの登録を行う。
【解説】
ファイル file からコマンドを読み込み実行します。source コマンドは入
れ子にすることができます。
【注意】
入れ子が深すぎるとシェルのファイルオープン制限数を越えてしまうことが
あります。
/***stty***/
STTY(1M) Mac-Shell Command STTY(1M)
【名前】
stty - 端末オプションの設定/表示
【形式】
stty
【解説】
stty
Msh コンソールのテキストサイズおよびモニターデバイスの解像度,
カラーモード等を表示します。
【使用例】
% stty
size = 80 x 25 ← コンソールの文字数
Monitor 640 x 480 (4 mono) ← モニターの解像度(表示モード)
【バージョン】
本バージョンでは、設定はできません。
/***cat***/
CAT(1M) Mac-Shell Command CAT(1M)
【名前】
cat - ファイルの連結と出力
【形式】
cat [-vnN] [file...]
【オプション】
-v コントロール文字を '^A'(CTRL+A) のように出力する。タブ、改
行(LF)、キャリッジリターン(CR)はそのまま出力される。
-n 行の先頭に行番号を付加する。行番号は各ファイルの先頭で 1に
設定される。
-N 行の先頭に行番号を付加する。行番号は複数ファイルを出力する
場合でもファイルを通じて増え続ける。
【解説】
cat は、指定した各 file を順次読み取り、標準出力に書き出します。
file が与えられないか '-' がファイル名として与えられた場合には、標
準入力から読み込む。
/***cp***/
CP(1M) Mac-Shell Command CP(1M)
【名前】
cp - ファイルのコピー
【形式】
cp [-rivbu] file1 file2
cp [-rivbu] file1 ... filen directory
【オプション】
-r ディレクトリ下の全ファイルをコピーする
-i 対話モード(コピー先ファイルがすでに存在する場合にはコピー
の前に確認する)
-v どのファイルがどこにコピーされているのかを逐一表示する
-b 通常ファイルのコピーで、かつコピー先が既存のファイルであれば、
それを.bakという拡張子で保存してからコピーを行う。この場合、
コピー先の元のファイルがリードオンリーであっても、以上の作業
が行われるので注意のこと。
-u 通常ファイルのコピーで、かつコピー先がコピー元より新しいか同
時刻の既存ファイルであれば、コピーを行わない。なお、コピーを
行わなかった旨のメッセージは表示されないので注意。
【解説】
cp は UNIX の同名命令と同じ働きを持った ファイルコピープログラムで
ある。cp を使うと一つのファイルを別のファイルにコピーする(1)、ある
いは複数のファイルを別のディレクトリに同じ名前でコピーする(2) こと
ができる。(1) 形式では file2 はディレクトリであってはならず、また
(2) 形式では directory はすでに存在するディレクトリでなければなら
ない。
'-r' オプションが設定されて、 かつコピー元ファイルがディレクトリで
あった場合には、cp はディレクトリ下の全ファイルを、 ディレクトリ構
造を保存してコピーする。
/***df***/
DF(1M) Mac-Shell Command DF(1M)
【名前】
df - ディスクフリーサイズの出力
【形式】
df [-hl] [drive...]
【オプション】
-h バージョン等の出力
-l 詳細情報の出力
ファイルシステムの種別(HFS/MFS/その他), 媒体ロック, 総ファ
イル数, 総フォルダー数, アロケーションブロックのサイズ等を
出力します
【解説】
コマンド df は、ドライブごとに使用されているディスク容量、使用済の
スペースと未使用容量、そしてファイルシステムの全容量に対する使用済
スペース容量の割り合いを表示します。引数がなければ、 df は全ドライ
ブについて表示します。
% df
Filesystem kbytes used avail capacity Drive
a: TomPB 157940 114787 43152 72% SCSI #0
b: RAM ディスク 1091 66 1025 6% RAM-Disk
c: DOS #1 1440 344 1096 24% FD #0, PC-Disk
ドライブ,ボリューム名 全容量 使用済 空容量 使用率 デバイス
【関連項目】
du(1m)
/***diff***/
DIFF(1M) Mac-Shell Command DIFF(1M)
【名前】
diff - テキスト・ファイル間の行の内容の相違の表示
【形式】
diff [ -bitw ] [ -c [ # ] | -e | -f | -n | -h ] filename1
filename2
diff [ -bitw ] [ -Dstring ] filename1 filename2
diff [ -bitw ] [ -c [ # ] | -e | -f | -n | -h ] [ -l ] [ -r ]
[ -s ] [ -Sname ] directory1 directory2
【解説】
diff はファイルの内容を比較します。規定のファイル上で実行 して、デ
ィレクトリの比較中において異なっていると判断された2つのテキスト・
ファイルを比較した場合(ディレクトリの比較に関しては後述の注意を参
照)、 diff は両ファイル間において内容の異なっている行を知ら せ ま
す。例外的な場合を除いて、 diff はごく些細な違いでも発見します。
filename1 と filename2 のどちらもディレクトリでなければ、 いずれか
一方に `-' を指定することもできます。この場合は標準入力を使用 しま
す。filename1 がディレクトリであれば、filename2 と同じファイル名を
もつそのディレクトリ内のファイルを filename1 として使用します (逆
も同様)。
出力書式にはいくつかのオプションがあります。省略時の出力書式はこれ
らの書式行を含んでいます。
n1 a n3,n4
n1,n2 d n3
n1,n2 c n3,n4
これらの行は filename1 を filename2 に変換する ed(1) コマンド に似
ています。文字の後の数字は filename2 に関連をもっています。事実、
a と d を入れ替えて逆に読めば、filename2 を filename1 に変換する方
法を確認できます。 ed(1) の場合と同様に、 n1 = n2 とか n3 = n4 な
どの対は単独の数に省略されています。
これらの行の次には、`<' で示す最初のファイルの相違ある行が示され、
次に `>' で示す2番目のファイルの相違ある行が示されます。
両方の引数がディレクトリであれば、 diff はディレクトリ内容を名前順
にソートし、次に、前述のように違いのあるテキスト・ファイル上で規定
のファイル diff プログラムを実行します。違いのある バ イナリ・ファ
イル、共通のサブディレクトリ、および1つのディレクトリにしか現れな
いファイルの一覧を出力します。
【オプション】
-b 後続のブランク(空白および改行文字)を無視し、その他のブラ
ンク文字列をすべて等しいものとみなします。
-i 大文字と小文字を区別しません。たとえば `A' は `a' と同じと
みなします。
-t 出力行でタブ文字を拡張します。通常の出力または -c 出力は、
各行の先頭に文字を追加するため、元のソース行のインデントが
混乱し、出力リストの解釈をむずかしくする恐れがあります。こ
のオプションは読み易さを保つために元のソースのインデントを
確保するものです。
-w ブランク(スペースおよびタブ文字)をすべて無視します。たと
えば、`if ( a == b )' と `if(a==b)' は同等です。次の 4 つ
は、相互に排他的なオプションです。
-c[#]
行の相違を示すリストを、いくつかの行の内容とともに出力しま
す。省略時の行数は3行ですが、例えば -c10 によって10 行に
変更できます。 -c を使用すると、出力書式が少し変化します。
つまり、出力は該当するファイルの識別とその作成日で始まり、
各変更点は 12 個の * を含む行で区切られます。 filename1 か
ら削除された行には `- '; また filename2 に追加された行には
`+ ' の記号がつきます。1つのファイルから他のファイルへ 行
を交換した場合には、両方のファイルに `! ' が付けられます。
ここで指定した数以内の行数の、両ファイル中で検出された変更
個所は、まとめて出力されます(これは従来の `diff -c' を変
更したもので、結果の出力ははるかに解釈し易くなりました)。
-e エディタ ed に対して、a, c, d コマンドのスクリプトを生成し
ます。これは filename1 から filename2 を再作成します。
-e に関連して、次のシェル・プログラムは複数の バージョンの
フ ァ イ ル を維持するのに役立ちます。元のファイル($1)と
diff が生成した一連のバージョン間の ed スクリプト($2,$3,..)
だけが必要です。「最新バージョン」は標準出力に現れます。
(shift; cat $*; echo '1,$p') | ed - $1
-e でディレクトリを比較するときには出力に特別な コマンドル
を directory1 の状態から directory2 の状態に変換する sh ス
クリプトが結果として得られます。
-f -e と同様のスクリプトを生成しますが、順序が逆なので ed で
は利用できません。
-n -e と同様のスクリプトを生成しますが、順序が逆であり、 各挿
入または削除コマンドで変更した行数をカウントします。
-h 高速ですが、精度が高いとはいえません。変更の範囲が狭く、は
っきりと分かれている場合にのみ有効です。いかなる長さのファ
イルにでも使用できます。
diff の2番目の書式のオプションは次の通りです。
-Dstring
filename1 と filename2 をマージし、標準出力に書き込みます。
C プリプロセッサによる制御を含んでいますから、 string を定
義せずに結果をコンパイルすることは、filename1 をコンパイル
す る こ と と 等 し く な ります。他方、string を定義する
と、 filename2 が生成されます。
ディレクトリ比較時のオプションは次の通りです。
-l 長い出力書式。各テキスト・ファイル diff を pr(1V) に渡し、
ページ付けを行います。テキスト・ファイルの違いをすべて報告
してから、その他の相違が記録され要約されます。
-r 共通のサブディレクトリが検出されると、 diff を再帰的に適用
します。
-s 同じファイルを報告します。異なるファイルは報告しません。
-Sname
ディレクトリ diff の処理をファイル name から開始します。
【ファイル】
/tmp/d?????
【診断】
終了ステータスは、違いがない場合は 0、違いが数カ所ある時は 1、問題
がありすぎる場合は 2 となります。
Missing newline at end of fileX
ファイル X の最終行に復帰改行がないことを示します。 出力が
行が同じであることを示しているようにみえても、実際には異な
っていれば、それらにフラグをたてて出力します。
【使用上の留意点】
-e か -f オプションを指定して生成する編集用スクリプトは、`.' で構
成する行の作成については意識しません。
-b, -w, -i オプションを指定してディレクトリを比較する場合、diff は
まず(cmp(1) の場合と同様に)ファイルを比較し、等しくなければ 規定
の diff アルゴリズムを実行します。違いが単にブランク文字列の 遅 れ
や、大文字と小文字の違いだけで、ファイルが同じであることが分かった
場合には、出力が一部正しくないことがあります。
-D オプションはソース・ファイル中にあるプリプロセッサの既存の 制御
を無視し、範囲の重複する #ifdefs' を生成できます。出力は手作業でチ
ェックするか、あるいは `cc -E' (cc(1V) 参照)で実行して、元のソー
ス・ファイルと diff で違いを比較しなければなりません。違いが明らか
になった場合には、コンパイルする前に修正しておかなければなりません。
【その他】
GNU 版の diff コマンドです。日本語対応はされていません。
/***du***/
DU(1M) Mac-Shell Command DU(1M)
【名前】
du - ディレクトリまたはファイルのディスク使用量を調べる
【形式】
du [-asl] [{file|dir}...]
【オプション】
-a 一般ファイルに対しての情報も出力
-s ブロック数の総計だけを出力
-l サブディレクトリを除いたブロック数,バイト数を出力
(UNIX にはないオプション)
オプションがない場合、各ディレクトリに対しての情報のみが出力されま
す。
【解説】
du は、ファイル,またはディレクトリを再帰的に降下しながらその 下の
すべてのディレクトリに含まれているファイルのディスク上に占めるキロ
バイト数を報告します。もし、ファイル名が指定されなければ "."(カレ
ントディレクトリ)がその対象となります。
【使用例】
ディレクトリに対して du を使った例を示します。なお、ディレクトリの
ブロックの総計は、表示の中の最後の項目です。
% du
5 ./memos
44 ./tech/lpr
217 ./tech/new
401 ./tech
80 ./letters
503 .
-l オプションを指定した例を示します。フロッピーのコピーを行った 場
合などに、総バイト数を比較すれば内容が同一か大体のチェックが行えま
す。
% du -l /usr/tc
usage in dir in bytes res bytes Directory
368 368 151,652 0 /usr/tc/graphic
24 24 1,638 0 /usr/tc/include/sys
280 256 90,257 0 /usr/tc/include
648 648 603,691 0 /usr/tc/lib
2752 1456 1,388,515 0 /usr/tc
2752 2752 2,235,753 0 total
usage 総 KB
in dir dir内 KB
in bytes データ フォークの総バイト数
res bytes リソースフォークの総バイト数
Directory ディレクトリ名
【関連項目】
df(1m)
【注意】
現在サブディレクトリ自体のファイルサイズは加算されません。
-a を指定しないと、ディレクトリでないファイルの引数は無視されます。
/***file***/
FILE(1M) Mac-Shell Command FILE(1M)
【名前】
file - ファイル内容を検査しファイルタイプを報告する
【形式】
file filename[...]
【オプション】
なし
【解説】
file は、指定されたファイルについて各種のテストを行い、その ファイ
ルタイプを判定します。なお、判定はファイル内容をもとに行うためファ
イル拡張子と異なるファイルタイプを報告する事がしばしばあります。
現在判定できるファイル・タイプは次の通りです。
テキスト・ファイル
C program C言語プログラムソース
ASM program アセンブリプログラムソース
batch text バッチファイル
日本語 text 日本語を含んだテキストファイル
english text 英文文書ファイル
ascii text その他のテキストファイル
バイナリー・ファイル
EXE 実行形式ファイル(EXE 形式)
COM 実行形式ファイル(COM 形式)
COM (Turbo-C) 実行形式ファイル(COM 形式,Turbo-C で作成)
COM (MS-C) 実行形式ファイル(COM 形式,MS-C で作成)
object file, <source-file> <コンパイラ,アセンブラ名>
オブジェクトファイル
library ライブラリファイル
LHA archive (-lhx-)
LHA,LHARC で作成されたアーカイブファイル
data その他のファイル(判定できなかった)
その他
directory サブディレクトリ
empty ファイルサイズが 0 byte のファイル
character special file
キャラクターデバイス(CON,CLK 等)
cannot open ファイルがオープンできなかった
cannot read ファイル内容を読み込めなかった
【使用例】
% file *
df.com: COM (Turbo-C)
du.c: C program
du.exe: EXE
du.obj: object du.c, MS C
file.c: C program
file.exe: EXE
file.obj: object file.c, TC86 Borland Turbo C++ 1.01
makefile: ascii text
old: directory
x.bat: english text
改良: 日本語 text
【注意】
file はしばしば嘘をつきます。
【その他】
現在のバージョンは、初期のものであるためあまり利口ではありません。
ファイルタイプの追加,判定方法の改善をしてほしいようでしたら、どし
どし言って下さい。
/***grep***/
GREP(1M) Mac-Shell Command GREP(1M)
【名前】
grep - ファイルの文字列または正規表現のサーチ(GNU 版)
【形式】
grep [ -CVbchilnsvwx ] [-<num>]
{-f expfile | [-e] expression} [filename...]
【解説】
grep は、入力ファイル(省略時には標準入力)をパターン検索して、 そ
のパターンを含む行をすべて標準出力に出力します。 grep が照合に使
用するパターンは、 ed(1) で使用する形式の限定正規表現です。
expression で '$*[^|()¥' などの文字を使用する際には注意が必要です。
これらの文字はシェルにとって特別な意味があるからです。 expression
全体を単一引用符 '...' で囲むのが最も安全です。
(MS-DOS の場合には、'"' でくくると良いでしょう)
grep ユーティリティを複数の入力ファイルに適用する場合には、出力 さ
れる各行の先頭にファイル名が付けられます。1つのファイルを処理する
ときはファイル名は表示されません。したがって、ファイル名を表示した
い場合は、2番目のファイルとして NUL を指定してください。
【オプション】
-C 一致した行の前後2行をブロックとして表示します
-V バージョン番号を表示します
-b 各行の先頭にその行のブロック番号を付けます。このオプション
は、文脈によりブロック番号を見つけだす場合に便利です
-c 一致したパターンを含む行そのものではなく、その行数だけを出
力します
-h ファイル名を表示しません
-i 比較時に大文字と小文字を区別しません。すなわち、大文字と小
文字は同じと解釈されます
-l 一致した行があるファイルのファイル名だけを出力します
-n 各行の先頭にファイル内の相対行番号を付けます
-s エラー・メッセージだけを表示します。エラー状態を調べるのに
便利です
-v 一致しない行だけをサーチし、表示します
-w ¥< と ¥> で囲んだのと同じように式をワードとしてサーチする
-x 完全に一致した行だけを表示します
-e expression
単に expression のみを指定したときと同じですが、expression
が `-' で始まる場合に使用します
-f expfile
expfile から正規表現または復帰改行で区切った文字列のリスト
を取り出します
-<num> 一致した行の前後 <num> 行を表示させます
【正規表現】
次の「1文字」の正規表現は、1文字と一致します。
c 普通の文字(下記の特殊文字以外)はそれ自身と一致する1文字
の正規表現です。
¥c バックスラッシュの後に特殊文字を続けた場合、その特殊文字と
一致します。特殊文字には次のものがあります。
+ `.', `*', `[' と `¥'(ピリオド、アスタリスク、左か
ぎかっこ、バックスラッシュ)は、かぎかっこ ([]) で
囲まないかぎり、特殊な意味を持ちます。
+ `^' (カレットまたはサーカムフレックス)は、正規表
現全体の先頭にある場合、または左かぎかっこの直後に
ある場合、特殊な意味を持ちます。
+ $ (通貨記号)は、正規表現全体の終わりにある場合、
特殊な意味を持ちます。
`<'、 `>'、 `('、 `)'、 `{'、または `}' がバックスラッシュの後に現
われたとき、下記のように正規表現の演算子を示します。
. ピリオドは、改行以外の任意の文字と一致します。
[string]
かぎかっこで囲んだ空でない文字列は、文字列のいずれかの文字
と一致します。ただし、文字列の最初の文字が `^'(サーカムフ
レックスまたはカレット)の場合、正規表現は、改行および文字
列内の他の文字を除くすべての文字と一致します。これ以外の位
置にある `^' は、普通の文字として解釈されます。マ イ ナ ス
(`-')符号を使用して、一致させる連続する ASCII 文字の範囲
を示すことができます。
たとえば範囲 [0-9] は文字列 [0123456789] と同じです。 `-'
は、文字列の先頭(または先頭の `^' の後)か、終わりにあ る
場合は普通の文字として解釈されます。右側のかぎかっこ `]'は
、かぎかっこで囲まれた文字列の最初の文字である場合(先頭の
`^' の後)、囲まれた文字列は終了しません。たとえば、[]a-f]
は `]' か、または文字 a から f と一致します。このような 文
字列では、 `.', `*', `[', と `¥' は普通の文字として解釈さ
れます。
次の規則により、正規表現を作成することができます。
* 1文字の正規表現とそれに続くアスタリスク `*' は、 0 個以上
の1文字正規表現と一致します。一致する対象が複数個ある場合
は、最も多くの文字数が一致する正規表現 (それも複数個あれば
左端に近いもの)と一致します。
¥(と¥)
¥( と ¥) に囲まれた正規表現は、正規表現それ自体と一致する
ものと一致します。
¥n 式 ¥n は、同じ正規表現の ¥( と ¥) に囲まれた正規表現と一致
する同じ文字列と一致します。 n は、数字とし、指定されたサ
ブエクスプレッションは、左から数えて n 番目の ¥( となりま
す。たとえば式 ^¥(.*¥)¥1$ は、同じ2つの文字列からなる行と
一致します。
[連結]
正規表現を連結したものは、テキスト文字列を連結したものと一致し、そ
れぞれがサーチ・パターンの連続する正規表現と一致します。
¥< 正規表現の中のシーケンス ¥< は、その直後の1文字の正規表現
を「ワード」の始めの部分、すなわち行の始めか,文字,数字, ま
たは下線の前、およびこれら以外の文字の後の部分のみと一致さ
せます。
¥> 正規表現の中のシーケンス ¥> は、その直後の1文字の正規表現
を「ワード」の終わりの部分、すなわち行の終わりか,文字,数字
または下線以外の文字の前の部分のみと一致させます。
¥{m¥}
¥{m,¥}
¥{m,n¥}
1文字の正規表現とそれに続く ¥{m¥}、¥{m,¥}、または ¥{m,n¥}
は、指定された回数分、その正規表現と一致します。 m と n の
値は 256 未満の負でない整数でなければなりません。 ¥{m¥} は
m 個の正規表現と一致します。 ¥{m,¥}は m 個以上の正規表現と
一致します。 ¥{m,n¥} は、m 個から n 個の正規表現と一致しま
す。第 2 および第 3 の指定方法の場合、許容範囲内でできるだ
け多くの回数分、その正規表現と一致します。
^ 正規表現の先頭のカレットまたはサーカムフレックス (^) は、
正規表現を行の最初の部分とのみ一致させます。
$ 通貨記号 ($) は、正規表現全体の終わりにある場合、正規表現
を行の最後の部分とのみ一致させます。
構造
example% ^entire $
は、正規表現全体を行全体と一致させます。
egrep は、 ¥(, ¥), ¥n, ¥<, ¥>, ¥{,と ¥}、を除いて grepと同じ種類の
正規表現を使用できます。 egrep では、さらに次のものが使用できます。
* 正規表現(1文字だけでなく)とそれに続くアスタリス
ク `*' は、 0 個以上の1文字正規表現と一致します。
一致する対象が複数個ある場合は、できるだけ左端に近
い最長の正規表現と一致します。
+ 正規表現とそれに続く正符号 `+' は、 1 個以上の1文
字正規表現と一致します。一致する対象が複数個ある場
合は、できるだけ左端に近い最長の正規表現と一致しま
す。
? 正規表現とそれに続く疑問符 `?' は、 0 個以上1文字
正規表現と一致します。一致する対象が複数個ある場合
は、できるだけ左端に近い最長の正規表現と一致します。
| 代替。 2 つの正規表現を `|' または改行で区切った場
合は、いずれかの正規表現に一致するものと一致します。
() かっこで囲んだ正規表現はその正規表現に一致するもの
と一致します。
演算子の優先順位は、高いものから、 `[ ]' (文字分類)、`*' `+' `?'
(クロージャ)、 `|' (代替)および改行となっています。
【使用例】
1 つのファイルを処理するときにだけファイル名を表示するには、nulを
2 番目のファイルとして使用します。
【関連項目】
vi(1m) regexp(7)
【使用上の留意点】
1 行の長さは最大 1024 文字までとします。それより長い行は切り捨てら
れます。
【診断】
一致するものがあった場合の終了ステータスは 0、一致するものがなかっ
た場合には 1、構文エラーまたはアクセス不能エラーがあった場合には 2
となります。
【その他】
GNU 版の grep コマンドです。
/***head***/
HEAD(1M) Mac-Shell Command HEAD(1M)
【名前】
head - ファイルの先頭部分の出力
【形式】
head [-<n>] [filename[...]]
【オプション】
-<n> 出力行数の指定(省略時=10行)
【解説】
指定した各ファイルの先頭部分を指定行だけ出力します。ファイルが2つ以
上指定された場合にはファイル名も出力されます。
% head -5 file1.c file2.c
==> file1.c <==
/*
* FILE1.C
*/
#include <stdio.h>
#include <dir.h>
==> file2.c <==
/*
* FILE2.C
*/
#include <stdio.h>
%
【関連項目】
cat(1m) tail(1m)
/***look***/
LOOK(1M) Mac-Shell Command LOOK(1M)
【名前】
look - 英単語辞書の検索
【形式】
look string [...] 英和辞書を引く(string で始まる英単語の表示)
look <日本語> [...] 和英字書を引く(string の意味を含む単語の表示)
【解説】
英単語辞書から string で始まる英単語全てを表示します。また、string
に日本語を指定すると和英検索となり string で指定された日本語の意味
を持つ単語を全て表示します。
【ファイル】
*/english.dic 英単語辞書
(ディレクトリは Msh コマンドのある所)
【関連項目】
looktool(1m)
【その他】
現在のこのコマンドは英単語辞書の検索のために作られたもので、 unix
の同名のコマンドとは仕様が異なっています。
look は Y.Tuda 作成のコマンドです。
/***ls***/
LS(1M) Mac-Shell Command LS(1M)
【名前】
ls - ディレクトリの内容の表示
【形式】
ls [-RadCxLlrtFsX1] [FILES.....]
【オプション】
-1 ファイル名だけを一行一ファイル形式で表示する。標準出力がブ
ロックデバイス(ディスク)に接続されている時のデフォルト出力
形式である。
-C ファイル名だけを縦方向に整列して表示する。標準出力が非ブロ
ッデバイス(コンソールなど)に接続されている時のデフォルト出
力形式である。
-F 実行可能ファイルの名前の後に'*'を、ディレクトリの後ろに は
'/'、エイリアスの後ろには '@' を付加して表示する。
-R ディレクトリの下のファイル全てを再帰的に表示する。
-S ソートしない。ファイルはディレクトリに格納されている順番で
出力される。
-X ファイルをその大きさでソートする。
-a 隠しファイルや '.', '..' で始まるファイル名も表示する。
-d ファイルがディレクトリであった場合には、その中に含まれるフ
ァイルを表示せずディレクトリの名前そのものを表示する。
-l ファイルについての詳細な情報を表示する - ファイル属性、 更
新日時、大きさ、ファイル名。一行一ファイル形式で出力される。
-L 機種依存情報の出力する。(UNIX にはないオプション)
-r ソートの順番を逆にする。
-s ファイルの大きさをファイル名の前に付加して表示する。大きさ
の単位は1024バイト
-t ファイルをその更新日時でソートする。最近に更新されたファイ
ルが先頭に表示される。
-x '-C' に似ているが横方向にソートする。
【解説】
ls は FILES に関する様々な情報を様々な形式で表示する。FILES が指定
されなかった場合には ls は現ディレクトリの内容を、ファイル名の順番
にソートして表示する。
なお、ls の表示するファイルサイズは Msh の場合にはデータフォークの
サイズのみです。(-L オプションでリソースフォークも表示される)
-l オプションが指定された時に出力されるファイルの属性情報は7文字か
らなる。各文字は次のような意味を持っている。
d : ファイルはディレクトリである
a : アーカイブビットが立っている(アーカイブビットとは何?)
h : 隠しファイルである
r : 読み込み可能
w : 書き込み可能
x : 実行可能(ディレクトリの場合にも属性は立っている。これはUNIX
から来た習慣である)
- : 対応する属性を持っていないことを示す。
-L オプションが指定された場合には、次の機種依存情報を表示する。
Macintosh(Msh) の場合
リソースフォークのバイト数(データフォークサイズの次)
ファイルタイプ
クリエータータイプ
ファイル属性 FInfo の fdFlags
ディレクトリの場合 ディレクトリID
例:
% ls -Ld applMsh.c cmd
リソースフォークバイト数 Type Creat フラグ
↓ ↓ ↓ ↓
----rw- 5238 414 Aug 9 1994 03:40 TEXT TSvi 0100 applMsh.c
d---rwx 0 0 Aug 13 1994 00:17 3374 0100 cmd/
↑
ディレクトリID
/***mkdir***/ rmdir
MKDIR(1M) Mac-Shell Command MKDIR(1M)
【名前】
mkdir - ディレクトリ作成
rmdir - ディレクトリ消去
【形式】
mkdir [-p] <directory> [...] ディレクトリ作成
rmdir <directory> [...] ディレクトリ消去
【オプション】
-p 親ディレクトリがない場合に必要に応じて作成する
【解説】
ディレクトリの作成及び削除を行います。
/***mv***/
MV(1M) Mac-Shell Command MV(1M)
【名前】
mv - ファイルの移動
【形式】
mv [-ivfbu] file1 file2
mv [-ivfbu] file1 ... filen directory
【オプション】
-i 対話モード(移動先ファイルが存在する場合には確認する)
-v どのファイルをどこに移動しているのかを逐一表示する
-f 書き込み不可ファイルは属性を変えて強制的に移動する
-b 通常ファイルのコピーで、かつ移動先ファイルが存在する時には名
前を*.bakに変えて保存する。たとえば
mv -b foo bar.c
で、bar.cが存在する時にはbar.cの内容をbar.bakに保存する。
-u 通常ファイルのコピーで、かつ移動先ファイルが移動元ファイルよ
り新しいか同時刻の既存ファイルであれば、移動を行わない。なお、
移動を行わなかった旨のメッセージは表示されないので注意。
【解説】
mv はファイルを移動します。
1. file1 を file2 に移動する。file2 はディレクトリであってはならな
い
2. 複数のファイル file1...filen を directory に同じ名前で移動する。
directory は存在するディレクトリでなければならない。
移動先は違うドライブであっても良い。その場合には実際にはファイルを
コピーした後、元のファイルを削除する。また、移動対象ファイルがディ
レクトリであった場合には、ディレクトリ下のファイル構造を保存したま
ま全体を移動する。たとえば,
usr/local/foo/a
usr/local/foo/a/b
usr/local/foo/c
というようにfoo以下にファイルが配置されていたとする。ここで
mv /usr/local/foo /etc/
を実行すると、結果次のようになる(ただし/etcディレクトリはすでに存
在していたとする)。
etc/foo/a
etc/foo/a/b
etc/foo/c
【注意】
ファイルを同じファイルに移動すること、たとえば
mv foo foo
は避けた方がよい。大低の場合、 mv はこのようなケースを検出してエラ
ーを出すが、もしかするとチェックにもれることもないとは言えない。少
くとも作者は保証できない。最悪の場合にはファイルの内容が失われる。
【関連項目】
cp(1m)
/***man***/
MAN(1M) Mac-Shell Command MAN(1M)
【名前】
man - オンライン・マニュアルの表示
【形式】
man [options] [section] title
man [options] -k [section] [keyword [...]]
【オプション】
-I : 大文字小文字を区別する
-k keyword... : キーワードによりタイトルを捜す
-M<man-dir> : マニュアルファイルのディレクトリを指定
-v : 使用方法の表示
【解説】
man はマニュアルからの情報を表示します。 man は title で選択したマ
ン・ページの全内容を表示するか、または keyword (-k) によって選択す
る 1 行の要約を表示できます。
section が与えられた場合、これはコマンド行でこれに続く title に適
用されます。man はマニュアルの指定された項で title を探します。
section は数字(この後にマン・ページの種類を示す1文字が続く)です。
section を省略すると、全ての項目を探し、順番にマニュアルを出力しま
す。もし、1つも見つからなければ、エラー・メッセージを出力します。
[メタキャラクタ(新機能)]
うろ覚えの関数なども、簡単に引けるように title と keyword に Unix
風のメタキャラクタ(正規表現とも言う)を使用できます。代表的な物を
下に説明します。なお、詳細は regexp(7) を参照して下さい。
. 任意の一文字
* 直前の文字(メタキャラクタも)の0回以上の繰り返し
[...] 括弧内のどれか1文字([a-z] 全ての英小文字)
[^...] 括弧内の文字に該当しない1文字
使用例
man .*copy.* "copy" を含むタイトル全て
man [0-9].* 先頭が数字のタイトル全て
[マニュアル表示時のキー]
^C, q, Q 終了する
j, J, Return 1行前進(↓ キーでも可)
k, K 1行後退(↑ キーでも可)
SPACE, f, F, ^F 1頁前進(ROLL-UP キーでも可)
b, B, ^B 1頁後退(ROLL-DOWN キーでも可)
d, D, ^D 半頁前進
u, U, ^U 半頁後退
g 先頭にジャンプ
G, $ 最後にジャンプ
^L 再表示
x 次のマン・ページに移る(なければ終了)
/, ? 文字列検索(正規表現は不可)
n, N 前方/後方検索(検索は循環します)
:<コマンド> コマンドラインモード
1, $ 先頭/最後にジャンプ
n 次のマン・ページへ
q, q! 終了
!<cmd> 外部コマンドの実行
[キーワード検索]
一覧ファイル(*/whatis)を検索しキーワードで指定されたタイトルを探
し出します。
キーワードで指定されたもの全てにマッチするタイトルを探し表示します。
検索の方法は、キーワードで指定された文字列があるかどうか調べている
だけです。
なお、検索は同じ意味の言葉でもいろいろの表現(例:削除→消去,消す)
がされているため通常の文字列検索ではうまくゆきません。そこで、 man
では別名定義ファイル(*/manfind.ail) を使いキーワードで指定された
語と同じ意味を持つ文字列がある場合には検索が成功されたとみなすよう
にしています。このファイルに、別名を追加していく事により検索が容易
になっていきます。
[manfind.ail の一部]
file ファイル
del デリート 削除 消す
output アウトプット 出力
put プット 出力
read リード 読 入力
[実行例]
% man -k file del
del(1) ファイルの削除 (COMMAND.COM 内部コマンド)
rm(1m) ファイルを削除する
cut(1m) ファイルの各行から特定のフィールドを削除
remove(3) ファイルの削除
rmdir(3) ファイルディレクトリの削除
unlink(3) ファイルの削除
【セクション】
用意されているマニュアルのセクションは、次のようになっています。
1 コマンド
2 システム・コール(Macの場合 Toolbox)
3 Cランタイム・ライブラリ (現在なし)
4 特殊ファイル (現在なし)
5 ファイル・フォーマット
6 ゲーム/デモ (現在なし)
7 色々な情報
8,9 未使用
現在あるマニュアルのセクションはこのようになっています。
1m Msh コマンド
2* Toolbox リファレンス
3 Cライブラリ
5 ファイルフォーマット
5m Msh コマンドのファイルフォーマット
7 色々な情報
7c C言語の色々な情報
【ファイル】
*/man?x.hlp マニュアル内容
*/man.idx インデックスファイル(manmnt(1m) でメンテナンス)
*/whatis 一覧ファイル
*/manfind.ail キーワード別名定義ファイル
ディレクトリ Msh のあるフォルダーの "Manual" フォルダー
【関連項目】
manmnt(1m) man(5m) regexp(7)
【注意】
マニュアルファイルを変更した場合には manmnt コマンドで必ずインデッ
クスファイルを更新する必要があります。
現在プログラムの制限で、1つのタイトルのマニュアルが 30KB を越えて
いる場合は後ろが切れます。(Mac版では 60KB)
【その他】
この man は、UNIX の同名のコマンドと動作が大幅に異なります。
/***manmnt***/
MANMNT(1M) Mac-Shell Command MANMNT(1M)
【名前】
manmnt - オンライン・マニュアルのメンテナンス
【形式】
manmnt [options]
【オプション】
-M<man-dir> マニュアルファイルのディレクトリを指定
-u インデックスファイルの更新
-t インデックスファイル内容の表示
-w<help-file> whatis ファイル用タイトル出力
【解説】
マニュアルファイル(*.hlp)からインデックスファイル(*.idx)を作成
します。
【ファイル】
*/man?x.hlp マニュアル内容
*/man.idx インデックスファイル
*/whatis 一覧ファイル
ディレクトリ Msh のあるフォルダーの "Manual" フォルダー
【関連項目】
man(1m) man(5m)
【注意】
マニュアルファイルを変更した場合には manmnt コマンドで必ずインデッ
クスファイルを更新する必要があります。
【使用例】
1) man.idx の更新
% manmnt -u
2) whatis 用タイトルの作成
% manmnt -wman1u.hlp > work
% ** whatis をエディタで修正 **
【その他】
manmnt は Y.Tuda/Tom 作成の拡張コマンドです。
/***rm***/
RM(1M) Mac-Shell Command RM(1M)
【名前】
rm - ファイルを削除する
【形式】
rm [-riIfv] file..
【オプション】
-r file がディレクトリであった場合に、ディレクトリ下の全ファ
イルを再帰的に削除する。このオプションが指定されなかった場
合には、ディレクトリを削除しようとするとエラーになる。
-i 各ファイルを削除する前に確認する。
-I -i オプションがこの前に指定されていればそれを無効にする。
-f 書き込み不可ファイル、隠しファイルも削除する。典型的には
rm -rf DIRECTORY
のようにして、ディレクトリを全削除する時に使われる。このオ
プションが指定されていなかった場合に、書き込み不可ファイル
を削除しようとした場合には確認を取り、隠しファイルはそもそ
も削除対象とならない。
-v どのファイルが削除されているのかを逐一表示する。
【解説】
rm はファイルを削除します。
/***sort***/
SORT(1M) Mac-Shell Command SORT(1M)
【名前】
sort - ファイルの整列, マージ
【形式】
sort [-brnfu] [-t c] [-o outfile]
[+n1[.m1][brnf] [-n2[.m2][b]] …] [FILES…]
【オプション】
-b フィールドの位置を決めるときに、フィールドの先頭の空白を無視
-r ソートの順序を逆にする
-n 文字列としてでなく、数値とみての比較を行う
-f ソートの際、英字の大文字小文字を区別しない
-u 比較の結果同じと見なされる行が複数ある場合、そのうち1つだけを
出力し他は捨てる。「同じと見なされる」かどうかは他の比較オプ
ションに依存し、必ずしも全くの同一行だけが捨てられるのではない
-t c フィールドの区切り文字をcにする
+n1.m1 -n2.m2
ソートするにあたって、比較対象を第n1フィールドの第
m1文字目から、第n2フィールドの第m2文字目の直前までとする。m1
やm2を略するとフィールドの先頭になり、また、-n2.m2を略すると
行末までが比較対象となる。このオプションは繰り返し指定できる。
なお、sortコマンドでは、最初のフィールドを第0フィールドと数え、
フィールドの最初の文字を第0文字目と数えるので注意のこと
【解説】
sort はFILES の各行をASCIIコード順にソートし、結果を標準出力に出す。
オンメモリでソートできない場合、一時ファイルを作る。
【バグ】
フィールドの区切り文字には2バイト文字も使える。しかし、それ以外で
は漢字を意識していないので、フィールド内の位置決めなどにあたって
は、漢字は2文字と数える。
UNIXのsortコマンドとほぼ同じ動作になるよう配慮して設計はしたが、
細部で動作が異なる部分があるかも知れない。(何せUNIXのsortコマンド
のマニュアルはambiguityが大きく、そのような部分では動作実験によっ
て仕様を推定せざるを得なかったため)
現在のところ、効率はあまり考えずに作ってあるので遅い。
/***tail***/
TAIL(1M) Mac-Shell Command TAIL(1M)
【名前】
tail - ファイルの一部分だけを表示する
【形式】
tail [-|+][#][clb][rh] [file...]
【オプション】
+数字 指定された行(または文字、ブロック)数だけファイル先頭からス
キップして、以降を表示する。
-数字 <file> の最後の指定された行(または文字、ブロック)数だけを
表示する。
c 文字を単位としてスキップ/出力する
l 行を単位としてスキップ/出力する(デフォルト)
b ブロック(512バイト)を単位としてスキップ/出力する
r ファイルの内容を行毎に最後から逆に表示する。数字が
指定されなかった場合にはファイルの全内容を逆順に表
示し、数字が指定された場合には指定された行数だけフ
ァイルの内容を逆順に表示する。
表示の単位は行に限られ、文字やブロック単位ではでき
ない。
h ファイルを複数指定すると、デフォルトでは各ファイル
出力の先頭にへッダを付加する。
このオプションを指定するとへッダを出力しない。
【解説】
tail は <file> の内容を指定された位置から表示します。
【使用例】
% tail ファイル名 … 最後の10行を表示
% tail -20 ファイル名 … 最後の20行を表示
% tail +10 ファイル名 … 10行目からファイルの最後まで表示
% tail -5r ファイル名 … 最後の5行を逆に表示
12 16
13 15
14 -----> 14 最後の5行
15 13
16 12
% tail -2b ファイル名 … 最後の 2 block を表示します
注意 1 block は 512 Byteです。もしも block の切れ目に漢
字データがある場合、正しく表示されない事があります。
% tail -10j ファイル名 … 最後の10文字を表示します。
注意 改行も1文字として数えます。
【注意】
tail はファイルの内容をメモリ中に保持するため表示すべき内容が 巨大
になった場合には処理に失敗することがある。
一行の長さが1024バイトを越えた場合には結果は保証されない。
ファイル末の EOF(^Z) 文字はたまに誤って処理され、 行(文字)数がくる
うこともあります。
【関連項目】
head(1m)
/***vi***/
VI(1M) Mac-Shell Command VI(1M)
【名前】
vi - Steive エディターの呼び出し
【形式】
vi [file...]
【解説】
Stevie が起動されていなければ起動し、指定されたファイルを開きます。
この時、ファイルが指定されなければ Stevie を表にもってくるだけです。
【アニュアル】
STEVIE - vi「を目指した」エディター
ユーザーレファレンス - 3.69/J1.3/M1.0.0
Tony Andrews 著 太田純 訳
(Macintosh 版 加筆 小山富夫)
注意: このマニュアルは、全機種共通のものです
1. 序章
STEVIE は UNIX のエディター vi のインターフェースを真似てデ
ザインされたエディターです。この名前 (ST Editor for VI
Enthusiasts)は、このエディターが最初に Atari ST のために書か
れたことから来ています。現在のバージョンでは UNIX、Minix
(ST)、MS-DOS、OS/2 もサポートされていますが、名前はそのまま
にしてあります。
このプログラムはここ2年間の徹夜ハッキングの成果です。元とな
ったバージョンは Tim Thompson によって書かれ、USENET にポス
トされました。これを出発点に、私はデータ構造を完全に書き直し、
数々の機能を追加し、エディター全体の効率を改善しました。
私はSTEVIE のことを vi「を目指した」エディターと述べました。
これは、あまりに多くを望む人々への警告です。とは言うものの、
全体としてこのエディターはかなり完全です。画面モードのコマン
ドはほぼすべてがサポートされており、より重要な ex コマンドの
いくつかもサポートされています。私は、細かい動作まで正しく行
われるようにすることによって、vi に近い感触が得られるように
力を尽くしました。行の折り畳みが正しく行われるようにすること、
正しい操作コマンドのサポート、タブに対して正しい位置にカーソ
ルが置かれるようにすることなどは大変でしたが、エディターの使
用感をviに近付けるためにはとても役に立っています。私はまた、
オリジナルの設計には賛成できない場合でも、vi の振舞いから逸
脱したいという誘惑に何とか抵抗してきました。
残された最大の問題は、編集バッファー全体がメモリー上で管理さ
れているということです。これにより、環境によっては編集できる
ファイルの大きさが制限されることがあります。その他不足してい
る機能には、名前付きバッファーとマクロなどがあります。実行速
度はおよそ満足できるものですが、画面更新のコードについてはよ
り効率的にすることが可能でしょう。この点は一般に、かなり遅い
システムでなければ感じられません。
STEVIE は自由に配布してかまいません。ソースは著作権で守られ
ておらず、いかなる意味でも制限を与えられていません。読者がこ
のプログラムを他人に譲るなら、すべてのドキュメントを、できれ
ばソースも、含めてください。この点に特にこだわるつもりはあり
ませんが、私は STEVIE をかなり移植しやすいようにしてきました
し、できるだけ多くの人々がソースを見ることができるようになっ
て欲しいのです。
このドキュメントの残りの部分では、このエディターの操作方法に
ついて述べています。すでに本物の vi に馴染んでいるユーザーに
対するレファレンスとなるように書かれています。
2. 形式
次のコマンド形式が利用できます。
stevie [ファイル ...] 指定されたファイルを編集する
stevie -t タグ 与えられたタグの位置から編集を開始する
stevie + ファイル ファイルの末尾から編集を開始する
stevie +行番号 ファイル 指定行から編集を開始する
stevie +/パターン ファイル
指定されたパターンを持つ行から編集を開始する
コマンド行に(最初の形式を使って)複数のファイルを指定した場
合、:n コマンドによって次のファイル、:N によって前のファイル
に移ることができます。:rew を使えばファイルリストの先頭に戻
ることもできます。
起動時実行ファイル (小山 加筆)
UNIX, Minix .stevierc
TOS, OS/2, DOS stevie.rc
Macintosh _exrc
3. コマンドオプションの設定
:set コマンドを使うと、各種パラメーターを設定することができ
ます。パラメーターはそれぞれ長い名前と省略名を持っており、い
ずれを使うこともできます。真偽値パラメーターは次のように設定
します。
set showmatch
解除するときは次のようにします。
set noshowmatch
数値パラメーターは次のように設定します。
set scroll=5
複数のパラメーターを1つのコマンドで設定することもできます。
set novb sm report=1
すべてのパラメーターの状態を見るときは、:set all としてくだ
さい。何も引数を与えずに :set とすると、変更されたパラメータ
ーだけが表示されます。利用できるパラメーターの名前、省略名、
初期値、説明を以下に示します。
autoindent 省略名: ai、初期値: noai、タイプ: 真偽値
挿入モードで改行したとき、新しい行を直前の行と同
じコラムから始める。本物の vi と異なり、字下げの
位置より前まで削除することができる
backup 省略名: bk、初期値: nobk、タイプ: 真偽値
ファイルに書き出す際に、バックアップファイルを残す
errorbells 省略名: eb、初期値: noeb、タイプ: 真偽値
エラーメッセージが表示されるときにベルを鳴らす
ignorecase 省略名: ic、初期値: noic、タイプ: 真偽値
文字列探索を行う場合に、英字の大小を区別しない
lines 省略名: lines、初期値: lines=25、タイプ: 数値
画面上に実際に表示できる行数初期値は実際には計算
機に依存するが、一般には 25 である
list 省略名: list、初期値: nolist、タイプ: 真偽値
タブと改行を表示文字として表示する
modelines 省略名: ml、初期値: noml、タイプ: 真偽値
ファイル中のモード行の処理を許可する
number 省略名: nu、初期値: nonu、タイプ: 真偽値
画面上の各行を行番号つきで表示する
report 省略名: report、初期値: report=5、タイプ: 数値
操作が行われたことが報告される最小の行数
return 省略名: cr、初期値: cr、タイプ: 真偽値
ファイルに書き出す際に行末を復帰・改行にする
scroll 省略名: scroll、初期値: scroll=12、タイプ: 数値
^D および ^U コマンドによってスクロールする行数
showmatch 省略名: sm、初期値: nosm、タイプ: 真偽値
)、}、] が入力されたとき、対応する (、{、[ が画
面上にあれば、カーソルを短時間そこに移動すること
によって知らせる
showmode 省略名: mo、初期値: nomo、タイプ: 真偽値
挿入モードにいるかどうかを最下行に表示する
tabstop 省略名: ts、初期値: ts=8、タイプ: 数値
1文字のタブを表す空白の数
terse 省略名: terse、初期値: noterse、タイプ: 真偽値
このオプションは現在のところ無視される。vi との
互換性のためだけに用意されている
tildeop 省略名: to、初期値: noto、タイプ: 真偽値
これが設定されている場合、チルド ~ は(c、d、y
と同じように)オペレーターとして扱われる。設定さ
れていなければ通常どおりの動作を行う
wrapscan 省略名: ws、初期値: ws、タイプ: 真偽値
文字列探索の際にファイルの一端に到達すると、もう
一方の端から探索を継続する
vbell 省略名: vb、初期値: vb、タイプ: 真偽値
可能なら表示ベルを使う(novb ではベル音になる)
環境変数 EXINIT を使うと、起動時の初期値を次のように変更する
ことができます。
UNIX などの場合 setenv EXINIT="set sm ts=4"
MS-DOS、OS/2 などの場合 set EXINIT=set sm ts:4
Macintosh の場合 Edit-Preferences メニューで設定
backup パラメーターが設定されていれば、エディターは書き出す
すべてのファイルについてバックアップを保存します。ファイルに
書き出している間は、安全のため常にバックアップが保存されてい
ます。書き出しが終了した時点で、backup パラメーターの設定に
よってバックアップファイルが削除されるかどうかが決まります。
通常の行末が復帰・改行であるような環境(たとえば MS-DOS、
OS/2、TOS)では、return パラメーターを解除することによって、
行末が改行だけになるようにファイルを書き出させることができま
す。このパラメーターは UNIX 上では無視されます。
linesパラメーターは、画面が何行あるかをエディターに伝えます。
これはたとえば ST (や EGA アダプター付きの OS/2 機)のよう
に複数の画面解像度を持ったシステムでは有用です。lines パラメ
ーターを使うことにより、複数の画面サイズが簡単に扱えます。
4. 行編集コマンド
STEVIE は、本物の vi が持つ行編集コマンドのいくつかをサポー
トしています。コマンドによっては行範囲の指定を前置きする必要
があります。行範囲を受け取るコマンドでは、次の行位置指定がサ
ポートされています。
行位置
行位置 + 数値
行位置 - 数値
ここで「行位置」は次のいずれかです。
行番号
マーク(たとえば 'a あるいは 'b)
'.'(現在行)
'$'(最終行)
行範囲 % は 1,$ の省略形という意味になります。
4.1 モード行
モード行はあまり知られていませんが、しばしば有用な vi の機能
です。この機能を使うには、ファイルの先頭あるいは末尾5行の中
に特別な文字列を置いておきます。ファイルを編集するとき、これ
らの文字列が見つかると、行編集コマンドとして入力されたかのよ
うに処理されます。これが有用となる1つの例として、ファイル単
位で tabstop パラメーターを設定する場合があげられます。次は
モード行の例です。
vi:set ts=4 noai:
ex:45:
モード行は、vi あるいは ex という文字列のあとにコロンで囲ん
だコマンドを続けたものであると言うことができます。この行に他
のテキストがあってもよく、また複数のモード行があってもかまい
ません。複数のモード行がある場合、処理が行われる順序は保証さ
れません。
モード行の処理を可能にするには、ml パラメーターを設定してお
きます。モード行の処理はエディターが起動された直後に行われる
ので、このパラメーターは環境変数 EXINIT の中で設定しておきま
す。なお、保安上の問題があるのでモード行の処理は標準では禁止
されています。
4.2 大域コマンド
大域コマンドのうち限られた形式のものがサポートされており、次
のコマンド形式が利用できます。
g/パターン/X
ここで X は d か p のいずれかであり、それぞれ与えられたパタ
ーンにマッチした行を削除あるいは表示します。行範囲が指定され
ると、その範囲の行だけがパターンにマッチするかどうか調べられ
ます。行範囲が指定されていなければ、すべての行が対象となりま
す。
最後のコマンド文字が省略された場合、p が仮定されます。この場
合にはその前のスラッシュも省略できます。現在のバージョンでは、
大域コマンドによる行の削除に続く取り消し操作はサポートされて
いません。
4.3 置換コマンド
置換コマンドは強力な機構を提供しており、画面モードで直接行う
場合より複雑な置換を可能にします。このコマンドの一般的な形式
は次のとおりです。
s/パターン/置換文字列/g
指定された範囲の各行(範囲が指定されなければ現在行)について、
与えられた正規表現があるかどうか調べます。見つかると、パター
ンにマッチした文字列は与えられた置換文字列で置き換えられます。
置換文字列が空文字列のときは、パターンにマッチした文字列はす
べて削除されます。
最後の g を指定するかどうかは任意であり、指定した場合、各行
に現れたすべてのパターンを置換することを示します。
置換文字列中では、いくつかの特別な文字列が認識されます。アン
パーサンド & は、マッチしたパターン全体で置き換わります。た
とえば、次のコマンドを使えばすべての foo や bar が二重引用符
で囲まれます。
1,$s/foo|bar/"&"/g
特別な文字列 ¥n (ここで n は1〜9の数字)は、パターン中の
対応する位置の括弧付き正規表現にマッチした文字列で置き換えら
れます。次のコマンドは、C の関数 foo の呼び出しにおける最初
の2つのパラメーターを交換します。
1,$s/foo¥(([^,]*),([^,]*),/foo(¥2,¥1,/g
大域コマンドと同様、現バージョンのエディターでは置換を取り消
すことができません。
4.4 ファイル操作コマンド
次の表は、サポートされているファイル操作コマンドと、他で記述
されていないいくつかの ex コマンドを示しています。
:w 現在のファイルを書き出す
:wq ファイルに書き出して終了する
:x 必要ならファイルに書き出して終了する
ZZ :x と同じ
:e file 指定されたファイルを編集する
:e! 変更を取り消して、現在のファイルを再編集する
:e # もう一方のファイルを編集する
:w ファイル 編集バッファーを指定されたファイルに書き出す
:x,yw ファイル 行 x から y までを指定されたファイルに書き出す
:r ファイル 指定されたファイルを編集バッファーに読み込む
:n 次のファイルを編集する
:N 前のファイルを編集する
:rew ファイルリストの先頭に戻る
:f 現在のファイル名を表示する
:f 名前 現在のファイル名を変更する
:x= 行位置 x の行番号を表示する
:ta タグ 指定されたタグに移動する
^] :ta と同じだが、カーソル位置の単語をタグとする
:help コマンド一覧を表示する
:ve バージョン番号を表示する
:sh 対話的にシェルを実行する
:!cmd コマンドを実行する
Atari ST の上では、<HELP> キーを押すことによっても:help コマ
ンドを実行することができます。実際にはこのコマンドは、サポー
トされていない機能について注が付けられた vi のコマンドの一覧
を表示します。
以上のコマンドは vi とほぼ同様の動作をします。ほとんどのコマ
ンドは、行われた変更を捨てるための ! 後置子を(必要なら)サ
ポートしています。
5. 文字列探索
文字列探索は vi と同様にサポートされており、通常の正規表現構
文を使うことができます。これは、Henry Spencer の正規表現ライ
ブラリーに手を加えたものを使うことによって行われます。私はラ
イブラリーの外部にコードを加え、¥< および ¥> の拡張をサポー
トするようにしました。パラメーター ignorecase を設定すれば、
すべての文字列探索において英文字の大小を無視させることができ
ます。
6. オペレーター
vi のオペレーター(d、c、y、! 、<、>)は真のオペレーターと
して働きます。パラメーター tildeop が設定されていれば、チル
ドコマンドもオペレーターとして使うことができます。このパラメ
ーターは標準では設定されていません。
7. タグジャンプ
タグジャンプは実装されており、かなり単純なバージョンの ctags
がエディターとともに提供されています。現バージョンの ctags
は、特定の(しかしよく使われる)形式で書かれた関数とマクロを
探し出します。詳細な議論についてはctags.doc をご覧ください。
8. システム特有部分の説明
以下の節では STEVIE が移植されたシステムに特有な付加的な情報
について述べています。
8.1 Atari ST
<<TOS>>
3種類の解像度すべてについてテストされていますが、低解像度と高解像
度については中解像度ほどテストされていません。50行高解像度モード
では lines パラメーターを50に設定することによって 利用することが
できます。 別のやり方として、環境変数 LINES を設定しておくこともで
きます。エディターが自分から画面の行数を設定することはありません。
単に指定された行数を使って動作を行うだけです。
矢印キー、また <INSERT>、<HELP>、<UNDO> キーはいずれも適切にマッピ
ングされています。
<<Minix>>
Minix の下でもかなり同じ動作をするようになっていますが、キーボード
マッピングの多くはサポートされていません。
8.2 UNIX
エディターは 4.2 BSD と同様に UNIX System V リリース3にも移植され
ています。これは、主にプロファイル用のデータを得るために行ったもの
であり、 UNIX バージョンが正しい動作を行うことにはそれほど労力を掛
けていません。termcap 関数はサポートされていますが、エディターはま
だ必要とする端末機能についてかなりやかましく、あまり賢くない端末に
対して賢い動作を行う努力はほとんどしません。
8.3 OS/2
この移植を行った理由は、OS/2 開発キットに付属していた エディターが
まったくひどいものだったからです。ansi モードがオンになっているこ
とを(ansi コマンドを使って)確認してください。OS/2 のコンソールド
ライバーは行の挿入・削除をサポートしていません。このため、STEVIEは
ドライバーを迂回して直接システムコールを行っています。これはすべて
システム依存の部分で行われているため、やっつけ仕事の部分はすくなく
とも1ヶ所にまとめられています。
矢印キー、page up/down キー、home/end キーはすべて期待どおりに働き
ます。ファンクションキーにはいくつかの有用なマクロが割り当てられて
います。しかしこれは、マクロがエディターに正しくサポートされるまで
のことです。現在のマッピングは次のとおりです。are:
F1 :N <復帰>
F2 :n <復帰>
F3 :e # <復帰>
F4 :rew <復帰>
F5 [[
F6 ]]
F7 C の宣言を擬似英語に変換する(cdecl を利用)
F8 英語風の宣言を C の形式に変換する(cdecl を利用)
F9 :x <復帰>
F10 :help <復帰>
S-F1 :N! <復帰>
S-F2 :n! <復帰>
F7 および F8 のマクロは、 cdecl プログラムが利用できることを仮定し
ています。
8.4 MS-DOS
STEVIE は Microsoft C 5.1 を使って MS-DOS 3.3 に移植されています。
キーボードのマッピングは OS/2 と同じです。MS-DOS 版での唯一の問題
は、画面更新のコードが非効率的であることが遅い機械の上で苦痛ととも
に明らかになることです。
MS-DOS 版では、行の挿入・削除が可能な拡張 コンソールドライバーが必
要です。配布されたコードは、広く入手可能と思われる nansi.sys に対
応しています。
8.5 Macintosh
・File メニューは、ほぼ Mac 標準の動きをします(印刷機能未サポート)
・Edit メニューの "Paste" はクリップボード上のテキストをカーソル位置
に挿入する
・Edit メニューの "Undo" は u コマンドとほぼ同じ動きをする
・スクロールバー/ウインドウのリサイズに対応している
・未サポートの機能
1. :!<command>, :sh 別プログラムの実行
9. 実現されていない機能
1. 利用できるメモリーより大きなファイルを編集する機能。
これは私の使っている機械では問題ではありませんが、
Minix-PC を使っている人々には相当な問題です。
2. ファンクションキーをサポートするマクロ。
3. より多くの set オプション。
4. その他のさまざまな機能。
10. 判明しているバグ、問題点
1. 格納(yank)バッファーは静的に割り当てられたメモリーを使ってい
るため、大きな格納は失敗します。削除が格納バッファーより大きな
範囲にわたる場合、プログラムは実際にそれを行う前に確認の問い合
わせをします。こうなっているだけですから、テキストを移動すると
き限られた格納バッファーに戸惑わないでください。単に、一度によ
り小さな部分を移動するだけでよいのです。すべての内部バッファー
(格納、再実行、その他)は、メモリーを動的に割り当てるように変
更する必要があります。ただし、取り消しバッファーだけは現在でも
動的に割り当てられているため、すべての変更は取り消すことができ
ます。
2. 挿入モードに長時間いると挿入バッファーがあふれることがある。こ
の場合、エディターはメッセージを表示してユーザーをコマンドモー
ドに投げ戻します。
3. 現バージョンの置換および大域コマンド(すなわち :s/foo/bar ある
いは :g/foo/d )は取り消すことができません。これは現在の取り消
しのためのコード設計によるものです。これらのコマンドを取り消す
ためには、一般に途方もない量のメモリーを必要とします。
4. 他にもいくつか、それほど腹立たしくない問題があります。
5. その他(追加: 小山富夫)
・まれに暴走する(ファイルの最後削除時など)
・X(カーソルの前文字消去) の複数回指定ができない
・:<cmd>(ex コマンド) の一部の動作が unix と異なる
6. Macintosh版固有の問題
・全体的に処理が遅い(特に画面スクロール)
・:!<command> ができない
・Print 機能が未サポート
12. 最後に
このエディターはかなり安定した状態に至っており、私がこのエディター
を使っているシステムでは十分な効率で動いています。このため、私は現
在ではかなりの割り合いで保守モードにいます。行わなければならないこ
とが、いまだにかなり残っています。画面更新のコードは依然まったく非
効率であり、格納(yank)・書き込み(put)のコードは依然として 原始
的です。私はまだバグの報告に興味があり、いまだ新しい機能を機会ある
ごとに追加していますが、変更の頻度は今では下がっています。
私は、このエディターの元となったバージョンを書いたことについて
Tim Thompson に感謝しています。彼のプログラムはよく構造化され、ま
ったく読みやすいものでした。作業のためのよい基盤を与えてくれたこと
に感謝します。自分自身の変更を送ってくれた多くの STEVIE のユーザー
にも感謝します。私が受け取った多くの変更は、私のサポートするすべて
のシステムに移植可能だったわけではありませんが、移植可能な実現方法
を可能な限りエディターに取り入れていこうと努力しているところです。
もしもあなたがこのファイルを読んでいて、 STEVIE のソースコードが入
手できなければ、返送用の切手を付けてフロッピーディスクを下記の住所
に送れば入手できます。こちらが書き込めるフロッピーディスクは、
Atari ST(SS または DS)、
MSDOS(360Kあるいは 1.2M)
です。返送用の切手を入れることを忘れないでください。私はこのプログ
ラムで金儲けするつもりはありませんが、かといって損をするつもりもな
いのですから。
Tony Andrews UUCP: onecom!wldrdg!tony
5902E Gunbarrel Ave.
Boulder, CO 80301
文字機能一覧
次の一覧は、エディターによって使われる各文字の意味を述べてい
ます。場合によっては、文字はコマンドモードと挿入モードでそれ
ぞれの意味を持っていますが、これらはすべて記述されています。
^@ 空文字。どのモードでも使われない。この文字はファイル
中に現れることができない。これは vi の場合と同じであ
る
^B 1画面戻る
^D 半画面上にスクロールする
^E 画面を1行上にスクロールする
^F 1画面進む
^G :f コマンドと同じ。ファイル情報を表示する
^H (後退文字)コマンドモードでは1文字左に移動する。挿
入モードでは入力された最後の文字を消去する
^J カーソルを1行下に移動する
^L 画面を消去・再表示する
^M (復帰文字)次の行の最初の非空白文字に移動する。挿入
モードでは入力のために新しい行を開始する
^N カーソルを1行下に移動する
^P カーソルを1行上に移動する
^U 半画面下にスクロールする
^Y 1行画面を1行下にスクロールする
^[ エスケープはコマンドモードでは入力中のコマンドを取り
止める。また、挿入モードを終了するために使われる
^] カーソルが置かれている単語が示す名前を持つタグに移動
する
^` サポートされているなら、:e # と同じ(システムに依存
する)
空白 カーソルを1コラム右に移動する
! フィルターオペレーターは常に、ある範囲の行に対して
操作を行う。それらの行をあるプログラムの入力として渡
し、それらをプログラムの出力によって置き換える。短縮
コマンド !! を使えば、(前置する回数で指定した)数
行をフィルターに掛けることができる。コマンド ! は最
後に実行されたコマンドで置き換えられるので、!!! は
与えられた数の行を最後に指定されたコマンドに渡して実
行する
$ 現在行の末尾に移動する
% カーソルが括弧 ()、波括弧 {}、ブラケット [] の上にあ
れば、対応する括弧に移動する
' 直前に 'a あるいは 'b などでマークされた位置にカーソ
ルを移動する。カーソルはマークされた行の先頭に移動す
る。特別なマーク '' は「直前の文脈」を指す
+ コマンドモードでは復帰文字と同じ
, 直前の t、T、f、F コマンドを逆向きに実行する
- 直前の行の最初の非空白文字に移動する
. 最後の編集コマンドを繰り返す
/ 前向きの文字列探索コマンドを開始する。文字列探索は閉
じるスラッシュで終わっていてもよい。スラッシュ自身を
探すためには、探索文字列の中で ¥/ を用いる
0 現在行の先頭に移動する。繰り返しの回数としても使われ
る
1-9 コマンドに繰り返し回数を前置するために使う
: ex コマンドを開始する
; 直前の t、T、f、F コマンドを繰り返す
< 左シフトのオペレーター
> 右シフトのオペレーター
? / と同じだが、逆向きに探索する
A 現在行の後に追加を開始する
B 空白で区切られた単語1つだけ後ろに戻る
C 現在行のカーソル以降を変更する
D 現在行のカーソル以降を削除する
E 空白で区切られた単語の末尾に移動する
F ある文字を現在行の中で逆向きに探す
G 指定された行番号の行に移動する(行番号省略時はファイ
ルの末尾)
H 画面上の先頭行の最初の非空白文字に移動する
I 現在行の最初の非空白文字の前に挿入を開始する
J 2つの行をつなぐ
L 画面上の最終行の最初の非空白文字に移動する
M 画面上の中央行の最初の非空白文字に移動する
N 最後の文字列探索を逆向きに実行する
O 新しい行を現在行の上に開き、挿入を開始する
P 格納・削除バッファーの内容を現在カーソル位置の直前に
挿入する
R エスケープが入力されるまで、文字列を置き換える。挿入
モードと同様だが、挿入の代わりに置換を行う。置換モー
ドで改行を入力することは挿入モードと同じであるが、新
しい行で置換が継続される
T 与えられた文字を逆向きに探し、その手前まで移動する
U 現在行を変更前の状態に戻す
W 空白で区切られた単語1つだけ前に進む
X カーソル直前の1文字を削除する
Y 現在行を格納するyy と同じ
ZZ エディターを終了する。必要なら変更を保存する
[[ C の関数1つだけ後ろに戻る
]] C の関数1つだけ前に進む
^ 現在行の最初の非空白文字に移動する
` これは ' と同様に与えられたマークに移動する。この2
つのコマンドの違いは、オペレーターとともに使われると
きに重要である。2つの違いは正しくサポートされている。
何を言っているのかわからないのならば、あなたにとって
は大したことではないので、気にする必要はない。
a カーソルの後にテキストを追加する
b 単語1つだけ後ろに戻る
c 変更オペレーター
d 削除オペレーター
e 単語の末尾に移動する
f ある文字を現在行の上で探す
h 1コラム左に移動する
i カーソルの前にテキストを挿入する
j 1行下に移動する
k 1行上に移動する
l 1コラム右に移動する
m 現在位置にマークを設定する(たとえばma あるいは mb)
n 直前の文字列探索を繰り返す
o 新しい行を開き、テキストの挿入を開始する
p 格納・削除バッファーの内容をカーソルの後に書き込む
r 1文字を置き換える
s 1文字を文字列で置き換える
t 与えられた文字を現在行の上で前向きに探し、その手前ま
で移動する
u 直前の変更を取り消す
w 1単語前に移動する
x カーソル位置の文字を削除する
y 格納オペレーター
z 現在行が先頭に(z復帰)、中央に(z. )、末尾に(z-)
来るように画面を書き直す
| 前置きされた数値で示されるコラム位置に移動する
~ カーソル位置の文字(が英字なら)の大小を反転し、右に
移動する。パラメーター tildeop が設定されていれば、
このコマンドはオペレーターとして働く
CONTENTS
STEVIE - ユーザーガイド
CONTENTS
1. 序章 ............................................. 1
2. エディターの起動 ................................. 2
3. コマンドオプションの設定 ......................... 2
4. 行編集コマンド ................................... 4
4.1 モード行 ..................................... 5
4.2 大域コマンド ................................. 5
4.3 置換コマンド ................................. 6
4.4 ファイル操作コマンド ......................... 6
5. 文字列探索 ....................................... 7
6. オペレーター ..................................... 8
7. タグジャンプ ..................................... 8
8. システム特有部分の説明 ........................... 8
8.1 Atari ST .................................... 8
8.2 UNIX ........................................ 8
8.3 OS/2 ........................................ 9
8.4 MSDOS ....................................... 9
8.5 Macintosh ................................... 9
9. 実現されていない機能 ............................. 10
10. 判明しているバグ、問題点 ......................... 10
11. 最後に ........................................... 11
文字機能一覧 ......................................... 12
/***wc***/
WC(1M) Mac-Shell Command WC(1M)
【名前】
wc - ファイル中の行/単語/文字数を数える
【形式】
wc [-lwc] [file...]
【オプション】
-l 行数を数える
-w 単語数を数える(スペース、タブで区切られた文字列が一単語)
-c 文字数を数える(漢字は2文字と数えるため、 実際にはバイト数
を数えています)
オプションを指定しなかった場合には '-lwc' と見なします。
【解説】
wc ファイル中の行/単語/文字数を数えるコマンドです。